#ifndef __TOCBODY_H__
#define __TOCBODY_H__

#include <GL/glut.h>

enum TOCDirections {
	NORTH,
	EAST,
	SOUTH,
	WEST
};

enum TOCTurnDirections {
	RIGHT,
	LEFT,
	BACK
};

class TOCBody {
public:
	TOCBody(void);
	~TOCBody();

	void computeMove(void);
	GLfloat getX(void);
	GLfloat getY(void);
	GLfloat getSpeed(void);
	GLuint getLook(void);

	void setXY(GLfloat x, GLfloat y);
	void setSpeed(GLfloat speed);
	void setLook(GLuint look);

	void turn(GLuint dir);
	void drawMe(void);
	GLuint getID(void);

protected:
	GLuint uuid;
	GLfloat rgb[3];
	GLfloat x;
	GLfloat y;

	/* virtual void init() {} */
	/* void setColor(GLfloat *rgb); */

private:
	GLint look;
	GLfloat speed;

	void init(void);
	virtual void _computeMove(void) {}
	virtual GLfloat _getSpeed();
	virtual void _drawMe(void) {}
};
#endif /* __TOCBODY_H__ */
